 // 1. 数组
// （1）第一种
var arr1 = [1, 2, 3];
console.log(arr1);
var arr2 = ['a', 'b'];
arr2.push('c');
// arr2.push(10)  //报错，因为10不是string类型，是number类型
arr2[0] = '10'; //不报错，因为是string类型
// （2）第二种
var arr3 = [1, 2, 3];
var arr4 = [true, false];
//（3）元组  元组类型允许您定义固定长度和类型的数组。
var arr_5 = [0, '哈哈哈', true];
//联合类型 |   在 TS 中叫联合类型由两个或多个其他类型组成的类型，表示可以是这些类型中的任意一种
var arr_6 = [1, 10, '哈哈哈', false];
var arr_7 = [10, 'hh'];
var a = '10';
var b = [true];
var arr_8 = [false, 10];
console.log(arr_8);
// 2.函数
//函数类型实际上指的是：函数参数和返回值的类型
// 函数声明式
function fn1(n, m) {
    console.log(n);
    console.log(m);
    console.log(123);
}
fn1(10, 'hhh');
//函数表达式
/*let fn_2 = function (t: boolean | string | number[]) {
    console.log(t)
}
fn_2('false')
fn_2([1, 2])*/
/*let fn_2 = function (t: Array<number>) {
    console.log(t)
}
fn_2([1, 2])*/
//写成箭头函数
var fn_2 = function (t) {
    console.log(t);
};
fn_2('false');
// 如果函数没有返回值，那么，它的返回值类型为：void
/*let fn_3 = function (): void {
    console.log(123)
}
fn_3()*/
var fn_3 = function () {
    console.log(123);
    // return 10
    // return 10
    return [10];
};
fn_3();
// 写成箭头函数
var fn_4 = function (m) { return Number(m); };
fn_4('hh');
var add = function (num1, num2) { return num1 + num2; };
console.log('add', add(2, 2));
var add1 = function (num1, num2) { return num1 + num2; };
add1(1, 2);
//3.对象
var obj_1 = {
    name: '李四',
    age: 20,
    isLogin: true,
    // say: function (n) {
    // say (n) {
    say: function (n) {
        console.log(123);
        console.log(n);
        return 123;
    }
};
obj_1.say('说话');
var obj_2 = {
    name: '张三',
    isLogin: false,
    age: 10,
    say: function (n) {
        console.log(n);
        return 234;
    }
};
var obj_3 = {
    name: '王五',
    age: 30,
    isLogin: true
};
var res = {
    // msg: '操作成功',
    // code: 200,
    // data: [1, 2, 3],
    // type: 'free'
    // type: 'boutique',
    pageNum: 1,
    pageSize: 5,
};
var myList = res;
var zs = {
    age: 0,
    name: '张三'
};
// 类型断言
var fn_5 = function (params) {
    // console.log(params.length)
    // console.log((params as string).length)
    console.log(params.length);
};
fn_5(123);
// fn_5([123, 1])
// 枚举
var CourseType;
(function (CourseType) {
    CourseType[CourseType["\u514D\u8D39"] = -1] = "\u514D\u8D39";
    CourseType[CourseType["boutique"] = 0] = "boutique";
    CourseType[CourseType["discount"] = 6] = "discount";
})(CourseType || (CourseType = {}));
var courseRes = {
    msg: '操作成功',
    code: 200,
    data: {
        type: 0
    }
};
console.log(CourseType[courseRes.data.type]);
// any
// let n: any;
// let m;
// console.log(m)
